﻿/**
 *
 * @file FITKAcousticsNCTSeptum.h
 * @brief 多层声包子类、隔离板
 * @author liuzhiyuan(liuzhiyuan@diso.cn)
 * @date 2024-11-1
 *
 */

#ifndef FITKACOUSTICSNCTSEPTUM_H
#define FITKACOUSTICSNCTSEPTUM_H

#include "FITKAcousticsPhysicsAPI.h"
#include "FITKAcousticsNCTLayUp.h"

namespace Acoustics
{
    /**
     * @brief 多层声包隔离板
     * @author liuzhiyuan(liuzhiyuan@diso.cn)
     * @date 2024-11-1
     */
    class FITKAcousticsPhysicsAPI FITKAcousticsNCTSeptum :public FITKAcousticsNCTAbstractLayObj
    {
    FITKCLASS(Acoustics, FITKAcousticsNCTSeptum);
    public:
        /**
         * @brief 构造函数
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        explicit FITKAcousticsNCTSeptum() = default;
        /**
         * @brief 析构函数
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        virtual ~FITKAcousticsNCTSeptum();
        /**
         * @brief 获取类型
         * @return double
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        NCTLayUpType getNCTLayUpType() override;
        /**
         * @brief 单位面积的质量
         * @return double
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        double getMassPerUnitArea() override;
        /**
         * @brief 设置表面质量
         * @param[i] surfaceMass 损耗系数
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        void setSurfaceMass(double surfaceMass);
        /**
         * @brief 表面质量
         * @return double
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-11-1
         */
        double getSurfaceMass();
        /**
       * @brief 复制数据对象,深拷贝，数据id不拷贝
       * @param[i] obj 被拷贝的对象
       * @return true
       * @return false
       * @author liuzhiyuan(liuzhiyuan@diso.cn)
       * @date 2024-11-10
       */
        virtual bool copy(FITKAbstractDataObject* obj) override;

    private:
        /**
         * @brief  表面质量
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date   2024-10-15
         */
        double _surfaceMass {0.0};
    };
}


#endif // FITKACOUSTICSNCTSEPTUM_H
